package analisis.enrichAnalysis;

import java.util.List;

/**
 * @file ICorreccion.java
 * @author Juan Humanes Ferrer
 * @date 14-Marzo-2014
 * @see Interfaz dedicada para las correcciones.
 */
public interface ICorreccion {

    /**
     * 
     * The p-value of each i for the test -set of gene in pathway i- is
     * multiplied by the number of genes in the Universe of genes. IF THE
     * CORRECTED P-VALUE IS STILL BELOW THE ERROR RATE, THE SET OF GENES WILL BE
     * SIGNIFICANT As a consequence, if testing 1000 set of genes at a time, the
     * highest accepted individual p-value is 0.00005, making gthe correction
     * very stringent. With a Family-wise error rate of 0.05 (the probability of
     * at least one error in the family), the expected number of false positives
     * will be 0.05
     *
     * @param listPvalue: lista de pvalues por aplicar la correccion. Es la
     * lista de pvalue de todos los pathways encontrados para un cluster.
     * @param n: numero de hipótesis planteadas. En nuestro caso tenemos tantas
     * hipotesis como pathways
     * @return res: lista de pvalues tras aplicar correccion, se devuelve la
     * lista completa sea rechazada o no la hipotesis (aceptado o no el azar de
     * la prueba)
     */
    public List<Double> correction(List<Double> listPvalue, int n);
}
